﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Persistencia;

namespace Dominio
{
    public class Manguera : ObjetoPersistible
    {
        public int IdManguera { get; set; }
        private static int _idMangueraContador=1;
        public TanqueCombustible Tanque { get; set; }
        public Surtidor Surtidor { get; set; }
        public List<Expendido> Expendidos=new List<Expendido>();
        public int Borrado { get; set; }

        public int getIdManguera()
        {
            return IdManguera;
        }
        
        public Manguera(TanqueCombustible unTanque, Surtidor unSurtidor) {
            this.IdManguera = _idMangueraContador++;
            this.Tanque = unTanque;
            this.Surtidor = unSurtidor;
            this.Borrado = 0;
        }

        public Manguera()
        {
            // TODO: Complete member initialization
        }

        public void AgregarExpendido(Expendido e){
            this.Expendidos.Add(e);
        }

        public void AgregarSurtidor(int idSurtidor)
        {
            Surtidor s = Sistema.GetSistema().ObtenerSurtidor(idSurtidor);
            this.Surtidor = s;
            s.AgregarManguera(this);
        }

        public void AgregarTanque(int idTanque)
        {
            TanqueCombustible t = Sistema.GetSistema().ObtenerTanque(idTanque);
            this.Tanque = t;
        }

        // override object.Equals
        public override bool Equals(object obj)
        {
            //       
            // See the full list of guidelines at
            //   http://go.microsoft.com/fwlink/?LinkID=85237  
            // and also the guidance for operator== at
            //   http://go.microsoft.com/fwlink/?LinkId=85238
            //

            if (obj == null || GetType() != obj.GetType())
            {
                return false;
            }

            // TODO: write your implementation of Equals() here
            return this.IdManguera.Equals(((Manguera)obj).IdManguera) ;
        }

        // override object.GetHashCode
        public override int GetHashCode()
        {
            // TODO: write your implementation of GetHashCode() here
            return base.GetHashCode();
        }

        public override string ToString()
        {
            return this.IdManguera + " " + this.Tanque.contenido.Nombre;
        }

    }
}
